class Tema < ActiveRecord::Base
  has_many :mis_temas
  has_many :users, :through => :mis_temas
  
  belongs_to :foro
  has_many :elinks

  before_save :actualizar_tema_size

  def titulo
    read_attribute('titulo').gsub(/ - TusSeries/, "")
  end

  def identificador
    read_attribute('direccion').split("=")[1]
  end

  def actualizar_tema_size
    self.tema_size = self.elinks.inject(0) { |sum, elink| sum + elink.elink_size }
    #~ puts "Tema.actualizar_tema_size(#{self.titulo}): #{self.tema_size}"
    true
  end

  def self.actualizar_temas
    Tema.find(:all).each { |tema| tema.save }
    true
  end

  def self.total_temas_size
    Tema.find(:all).inject(0) { |sum, tema| sum + tema.tema_size }
  end

  def self.not_subscribed_by_user(user)
    Tema.find(:all).reject { |tema| tema.users.include? user }
  end
end
